Catch directfb errors in gdk_colormap_new
authorMatthias Clasen <mclasen@redhat.com>
Tue, 23 Feb 2010 18:05:24 +0000 (13:05 -0500)
committerTristan Van Berkom <tristan.van.berkom@gmail.com>
Sun, 4 Apr 2010 00:56:22 +0000 (20:56 -0400)
Patch by Andre Draszik, bug 609172.

gdk/directfb/gdkcolor-directfb.c

index 298013346e4d0e58866acce40eaab63ee24e1b6a..86f68da1ed3c3639eea40ab73fd340dfc0e9a97b 100644 (file)
@@ -119,9 +119,16 @@ gdk_colormap_new (GdkVisual *visual,
     {
     case GDK_VISUAL_PSEUDO_COLOR:
       {
+        IDirectFB                  *dfb = _gdk_display->directfb;
+        IDirectFBPalette           *palette;
         GdkColormapPrivateDirectFB *private;
         DFBPaletteDescription       dsc;
 
+        dsc.flags = DPDESC_SIZE;
+        dsc.size  = colormap->size;
+        if (!dfb->CreatePalette (dfb, &dsc, &palette))
+          return NULL;
+
         colormap->colors = g_new0 (GdkColor, colormap->size);
 
         private = g_new0 (GdkColormapPrivateDirectFB, 1);
@@ -133,10 +140,7 @@ gdk_colormap_new (GdkVisual *visual,
             private->info[0].ref_count++;
           }
 
-        dsc.flags = DPDESC_SIZE;
-        dsc.size  = colormap->size;
-        _gdk_display->directfb->CreatePalette (
-               _gdk_display->directfb, &dsc, &private->palette);
+        private->palette = palette;
 
         colormap->windowing_data = private;